package com.cke.yang.preview.domain.strategy;

import com.cke.yang.preview.domain.model.PreviewLinkWrapper;
import com.cke.yang.preview.infra.enums.ExchangeLinkModeEnum;

/**
 * 链接交换接口策略器
 *
 * @author yuyang
 * @date 2025-11-18 00:00:00
 */
public interface ExchangeLinkStrategy {

    /**
     * 判断策略器是否支持指定请求
     * @param modeEnum 预览模式
     * @return true=>支持
     */
    boolean supports(ExchangeLinkModeEnum modeEnum);

    /**
     * 交换链接实际处理逻辑
     * @param keyStr 预览请求关键信息
     * @return 文件预览信息封装体
     */
    PreviewLinkWrapper exchangeLink(String keyStr);

}
